1. Field of the Invention
The present invention relates to virtualization and more particularly to virtual machines on multiple hosts.
2. Description of the Related Art
A virtual machine (VM) or virtual computer is a logical representation of a computer implemented within computer software. In a traditional physical computer, one instance of the operating system supports one or more application programs. In a virtualization environment, however, a single physical computer, or cluster of physical computers, runs software that abstracts the resources of a physical computer so that the resources of the physical computer may be shared between multiple virtual computers or VMs. To that end, each VM may be running a different operating system from all of the other virtual machines on the physical machine. Of import, a crash or other program error resulting in any of the VMs leaves all of the other VMs unaffected in the single physical computer.
There are different types of virtualization, including desktop virtualization and server virtualization. Desktop virtualization moves the operating system and the applications it supports from a desktop computer to a virtual computer running on a server. A user can still customize the desktop environment. In addition, unlike when working on a traditional single physical computer, when a user moves to a different location, the entire workspace of the user appears on whichever workstation or device the user is currently using. If the workstation hardware should fail, the entire workspace of the user is available on any other workstation on the network.
Server virtualization allows a physical server to be apportioned to run multiple secure virtual machines (VMs) or virtual servers. This creates an opportunity to consolidate physical servers. In addition, as the resource requirements of one of the server-based products running in a VM grows, moving the VM to a different physical server with more available resources is as simple as copying a file. Generally, VMs, in multiple server environments, are placed on different physical servers based on static analysis of CPU utilization and memory usage.
In the case of a single server environment, virtualization solutions use content based page sharing to consolidate memory resources in a server platform. Page sharing allows identical pages to be shared across VMs, which eliminates redundant pages and frees up memory resources. In operation, a hypervisor scans the memory for duplicate pages. On detecting a duplicate page the hypervisor eliminates one of the duplicate pages and alters virtual memory to point to the shared copy, but this approach is limited to VMs on a single server.